dd8c6d04ba04cc0a94d4e505126599c775a8d3a2,core/baseLanguage/graphLayout/solutions/jetbrains.mps.graphLayout.planarization/source_gen/jetbrains/mps/graphLayout/planarization/TreeEmbeddingFinder.java,TreeEmbeddingFinder,split,#EmbeddedGraph#Edge#,112
Before Change
pos++;
}
ListSequence.fromList(darts).setElement(pos, new Dart(edge.getSource().addEdgeTo(newNode), ListSequence.fromList(darts).getElement(pos).getDirection()));
ListSequence.fromList(darts).insertElement(pos + 1, new Dart(newNode.addEdgeTo(edge.getTarget()), ListSequence.fromList(darts).getElement(pos).getDirection()));
}
return newNode;
}
After Change
Graph originalGraph = embeddedGraph.getGraph();
Node newNode = originalGraph.addDummyNode();
edge.removeFromGraph();
List<Edge> newEdges = ListSequence.fromList(new ArrayList<Edge>());
ListSequence.fromList(newEdges).addElement(edge.getSource().addEdgeTo(newNode));
ListSequence.fromList(newEdges).addElement(newNode.addEdgeTo(edge.getTarget()));
List<Face> facesToProcess = ListSequence.fromList(new ArrayList<Face>());
ListSequence.fromList(facesToProcess).addSequence(ListSequence.fromList(MapSequence.fromMap(embeddedGraph.getAdjacentFacesMap()).get(edge)));
for (Face face : ListSequence.fromList(facesToProcess)) {
List<Dart> darts = face.getDarts();
int pos = 0;
while (ListSequence.fromList(darts).getElement(pos).getEdge() != edge) {
pos++;
}
Dart dartToReplace = ListSequence.fromList(darts).getElement(pos);
for (Edge newEdge : ListSequence.fromList(newEdges)) {
if (ListSequence.fromList(newEdge.getAdjacentNodes()).contains(dartToReplace.getSource())) {
embeddedGraph.setDart(face, pos, new Dart(newEdge, dartToReplace.getSource()));
}